//
/***********************************************************
             File name:      main.c
             Author:         Bitat (陆叁柒)
             Email :         Bitat@qq.com
             Gitee :         https://gitee.com/bitat
             CSDN  :         https://blog.csdn.net/bitat
             History:        2023/3/18
 ************************************************************/


#include <math.h>
#include <stdio.h>


//
int main()
{
    int n = 0;
    scanf("%d",&n);
    int i = 0;
    int sum = 0;
    for(i = 1; i < n; i++)
    {
        if(n % i == 0)
        {
            sum += i;
        }
    }
    if(sum == n)
    {
        printf("%d是完数\n",n);
    }
    else
    {
        printf("%d不是完数\n",n);
    }
    return 0;
}





//冒泡排序法
//void bublle_sort(int sz,int* arr)
//{
//    int i = 0;
//    for(i = 0; i < sz-1; i++)
//    {
//        int j = 0;
//        for(j = 0; j < sz-1-i; j++)
//        {
//            if(arr[j] > arr[j+1])
//            {
//                int tmp = arr[j];
//                arr[j] = arr[j+1];
//                arr[j+1] = tmp;
//            }
//        }
//    }
//}
//
//int main()
//{
//    int arr[10];
//    int i = 0;
//    for(i = 0; i < 10; i++)
//    {
//        scanf("%d",&arr[i]);
//    }
//    int sz = sizeof(arr)/sizeof(arr[0]);
//    bublle_sort(sz,arr);
//
//    for(i = 0; i < sz; i++)
//    {
//        printf("%d ",arr[i]);
//    }
//    printf("\n");
//    return 0;
//}



//输入个数 进行相加
//int Add(int n,int* a, int* b,int* result)
//{
//    int i = 0;
//    for(i = 0; i < n; i++)
//    {
//        *(result + i) = *(a+i) + *(b+i);
//    }
//    return 0;
//}
//
//int main()
//{
//    int n,a[101],b[101],result[101];
//    scanf("%d",&n);
//    int i = 0;
//    for(i = 0; i < n; i++)
//    {
//        scanf("%d",&a[i]);
//    }
//    for(i = 0; i < n; i++)
//    {
//        scanf("%d",&b[i]);
//    }
//    Add(n,a,b,result);
//    for(i = 0; i < n; i++)
//    {
//        printf("%d ",result[i]);
//    }
//    printf("\n");
//    return 0;
//}





//求勾股数
//设a为1 b=a+1； c满足平方&三边之和&c<100
//int main()
//{
//    int a, b, c;
//    printf("100以内的勾股数有：\n");
//    for (a = 1; a <= 100; a++)
//    {
//        for (b = a + 1; b <= 100; b++)
//        {
//            c = sqrt(a * a + b * b);
//            if (c * c == a * a + b * b && a + b > c && a + c > b && b + c > a && c <= 100)
//            {
//                printf("%d %d %d", a, b, c);
//                printf("\n");
//            }
//        }
//    }
//    return 0;
//}





//数组倒序
//int main()
//{
//    int arr[100];
//    int input = 0;
//    scanf("%d\n",&input);
//
//    int i = 0;
//    for(i = 0; i < input; i++)
//    {
//        scanf("%d",&arr[i]);
//    }
//
//    int turn = 0;
//    for(i = 0; i < input/2; i++)
//    {
//        turn = arr[i];
//        arr[i] = arr[input-1-i];
//        arr[input-1-i] = turn;
//    }
//
//    int j = 0;
//    for(j = 0; j < input; j++)
//    {
//        printf("%d ",arr[j]);
//    }
//    printf("\n");
//    return 0;
//}
